跳到主要内容

LLM Wiki:用 LLM 构建个人知识库的一种模式

2026 年 4 月,前 Tesla AI 总监、OpenAI 研究员 Andrej Karpathy 发了一条推文,讲自己如何用 LLM 做个人知识库,阅读量超千万。随后他写了一份完整的设计文档,引发了社区的大量实现和讨论。本文基于 Karpathy 的原始文档和社区实践,对 LLM Wiki 的理念、架构和实现做系统性说明。

一、LLM Wiki 是什么

先说问题

大多数人用大模型处理文档的方式叫 RAG(检索增强生成):你扔一堆文件进去,每次提问时模型临时翻找、临时拼凑答案。能用,但知识没有积累。问一个需要综合五份文档才能回答的问题,模型每次都得从零开始找、从零开始拼。什么都没沉淀下来。NotebookLM、ChatGPT 的文件上传、大多数 RAG 系统都是这样工作的。

LLM Wiki 的思路

Karpathy 的思路反过来:别让模型每次临时翻书了,让它替你维护一套持续更新的笔记。

具体说,就是让 LLM 把你喂给它的资料逐步编译成一组互相链接的 Markdown 文件(也就是一个 wiki),像程序员维护代码库一样。每加一份新资料,模型不会只是存起来,它会读懂、提取要点、更新已有页面、标注矛盾、补充交叉引用。知识被「编译」一次就沉淀下来,越积越厚。

关键区别:RAG 的知识停留在原始文档里,每次查询重新发现;LLM Wiki 的知识被编译成结构化的 wiki 页面,交叉引用已经建好了,矛盾已经被标记了,综合判断已经反映了你读过的所有内容。

用 Karpathy 的话说:

Wiki 是一个持久的、不断复利增长的产物。每添加一个新资料源、每提出一个新问题,wiki 都在变得更丰富。

分工

角色职责
人类选资料、问问题、做判断、决定研究方向
LLM总结、归档、交叉引用、保持一致性、维护索引和日志

人类之所以会放弃维护 wiki,是因为维护负担的增速超过了价值增速。LLM 消除了这个瓶颈——它不会烦、不会忘、一次操作能同时更新十几个页面。

操作方式

Karpathy 描述的实际工作流:

一边开着 LLM Agent(能执行操作的 AI 助手,不只是聊天,还能读写文件、运行命令),一边开着 Obsidian(一款流行的本地 Markdown 笔记软件,支持双向链接和图谱视图)。LLM 根据对话进行编辑,用户实时浏览结果——跟踪链接、查看图谱视图、阅读更新后的页面。

Obsidian 是 IDE,LLM 是程序员,wiki 是代码库。

适用场景

  • 个人领域:追踪目标、健康、心理——归档日记、文章、播客笔记,构建关于自己的结构化全景
  • 研究领域:数周或数月深入一个课题——阅读论文、文章、报告,逐步构建带有演进论点的综合性 wiki
  • 阅读一本书:逐章归档,为人物、主题、情节线索建立页面,标注关联。读完后拥有一部丰富的伴读 wiki(想想 Tolkien Gateway——数千个互相链接的页面)
  • 商业/团队:由 LLM 维护的内部 wiki,输入来源是 Slack 讨论、会议记录、项目文档、客户通话
  • 其他:竞争分析、尽职调查、旅行规划、课程笔记、爱好深挖

二、三层架构

LLM Wiki 分为三层,各层职责清晰:

1. 原始资料源(Raw Sources)

你精心筛选的源文档集合。文章、论文、图片、数据文件。

只读——LLM 从中读取但绝不修改,原始资料永远保持原样。这是你的权威来源(source of truth),当信息冲突时以此为准。

2. Wiki

一个由 LLM 生成的 Markdown 文件目录。摘要、实体页面、概念页面、对比分析、概览、综合判断。

完全由 LLM 拥有——它创建页面、在新资料到达时更新页面、维护交叉引用、保持一切一致。你负责阅读,LLM 负责写。

3. Schema(模式定义)

一份配置文档(比如 Claude Code 的 CLAUDE.md 或 OpenAI Codex 的 AGENTS.md),定义 wiki 的结构是怎样的、约定是什么、在摄入资料、回答问题或维护 wiki 时应遵循什么工作流。

这是关键配置文件——它让 LLM 成为一个有纪律的 wiki 维护者,而非一个通用聊天机器人。随着你对自己领域的理解加深,你和 LLM 会一起迭代这份文档。

my-wiki/
├── raw/
│ ├── sources/ # 原始资料(只读)
│ └── assets/ # 本地图片
├── wiki/
│ ├── index.md # 内容目录
│ ├── log.md # 操作日志
│ ├── overview.md # 全局概要
│ ├── entities/ # 实体页面(人物、组织、产品)
│ ├── concepts/ # 概念页面(理论、方法、技术)
│ ├── sources/ # 资料摘要
│ ├── synthesis/ # 跨资料综合分析
│ └── comparisons/ # 并列对比
├── schema.md # 结构规则
└── purpose.md # 目标和方向(可选)

三、三个核心操作

1. 摄入(Ingest)

你把新资料放进原始资料集,然后让 LLM 处理它。一个典型流程:

  1. LLM 阅读资料
  2. 与你讨论关键要点
  3. 在 wiki 中写一个摘要页面
  4. 更新索引(index.md)
  5. 更新 wiki 中相关的实体和概念页面
  6. 在日志(log.md)中追加一条记录

一个资料源可能触及 10-15 个 wiki 页面。 比如你摄入一篇关于某公司收购案的新闻,LLM 可能需要更新:收购方公司页面、被收购方公司页面、CEO 页面、行业概览页面、相关概念页面(如「并购整合」)、以及新闻本身的摘要页面。

Karpathy 的个人偏好是逐条摄入并全程参与——读摘要、检查更新、引导 LLM 强调什么。但也可以批量摄入大量资料,减少监督。怎么做取决于你自己,找到适合你的工作流后,记在 Schema 里。

2. 查询(Query)

你针对 wiki 提问。LLM 搜索相关页面、阅读它们、综合出带引用的答案。

答案可以根据问题采取不同形式——一个 Markdown 页面、一个对比表格、一套幻灯片(Marp)、一张图表(matplotlib)、一个画布。

重要洞察:好的答案可以作为新页面归档回 wiki。 你请求的一次对比分析、一个分析结论、你发现的一个关联,这些都值得留下来,不应该消失在聊天历史中。这样,你的探索就像摄入的资料源一样,在知识库中实现复利增长。

3. 检查(Lint)

定期让 LLM 对 wiki 做健康检查,寻找:

  • 页面之间的矛盾
  • 已被更新资料取代的过时论断
  • 没有任何入站链接的孤儿页面(orphan pages)
  • 被提及但缺少独立页面的重要概念
  • 缺失的交叉引用
  • 可以通过网络搜索填补的数据缺口

LLM 擅长建议新的调查问题和新的资料来源。这让 wiki 在增长过程中保持健康。


四、索引与日志

两个特殊文件帮助 LLM(和你)在 wiki 增长时进行导航。

index.md —— 内容目录

wiki 中所有内容的目录——每个页面列出链接、一行摘要、以及可选的元数据(如日期或资料源计数)。按类别组织(实体、概念、资料源等)。LLM 在每次摄入时更新它。

回答查询时,LLM 先读索引找到相关页面,再深入查看。这在中等规模(约 100 个资料源、数百个页面)下效果出奇地好,避免了基于 embedding 的 RAG 基础设施的需求

# Wiki Index

## 实体
- [[张三]] — 某公司 CTO,主导了 X 项目
- [[某公司]] — 成立于 2020 年,专注 AI 领域

## 概念
- [[Transformer]] — 注意力机制架构,BERT 和 GPT 的基础
- [[RAG]] — 检索增强生成,结合外部知识的 LLM 应用模式

## 资料源
- [[2024-01-15 某公司融资新闻]] — B 轮融资 5000 万美元
- [[Attention Is All You Need]] — Transformer 原始论文

log.md —— 操作日志

一个只追加的记录(append-only),记录发生了什么以及何时发生——摄入、查询、检查。

实用技巧:如果每条记录以统一前缀开头(如 ## [2026-04-02] ingest | Article Title),日志就可以用简单的 Unix 命令行工具解析:

grep "^## \[" log.md | tail -5 # 最后 5 条记录
grep "ingest" log.md # 所有摄入记录
# Log

## [2026-04-02] ingest | Attention Is All You Need
- 创建页面:[[Transformer]], [[Self-Attention]]
- 更新页面:[[深度学习]], [[NLP]]
- 新增交叉引用 4 条

## [2026-04-02] query | Transformer 和 RNN 的区别
- 检索页面:[[Transformer]], [[RNN]], [[序列模型]]
- 生成对比页面已归档至 wiki/comparisons/

## [2026-04-03] lint
- 发现 2 个孤儿页面
- 发现 1 处矛盾:[[某公司]] 成立时间在两个页面中不一致

五、可选工具链

Obsidian

一款本地 Markdown 笔记软件,支持双向链接和图谱视图。LLM Wiki 的 wiki 目录可以直接作为 Obsidian 仓库使用——LLM 在后台编辑文件,你在 Obsidian 中实时浏览结果。

关键功能

  • 图谱视图(Graph View):以节点和连线可视化所有笔记之间的链接关系,是查看 wiki 全貌的最佳方式——什么和什么连接在一起,哪些页面是枢纽,哪些是孤儿
  • 双向链接[[页面名]] 语法,自动建立反向链接
  • Web Clipper:浏览器扩展,把网页文章转换为 Markdown,快速收入原始资料集

图片下载技巧:在 Obsidian 设置 → 文件和链接中,把「附件文件夹路径」设为 raw/assets/。然后在设置 → 快捷键中搜索「Download」,绑定一个快捷键(如 Ctrl+Shift+D)。剪藏文章后按快捷键,所有图片下载到本地磁盘。这样 LLM 可以直接查看和引用图片,而不用依赖可能失效的 URL。

Marp

一种基于 Markdown 的幻灯片格式,Obsidian 有插件支持。可以直接从 wiki 内容生成演示文稿。

---
marp: true
theme: default
---

# Q4 业务复盘
来源:wiki/overview.md

---

# 关键指标
| 指标 | Q3 | Q4 | 增长 |
|------|-----|-----|------|
| 营收 | 4200万 | 5000万 | +19% |

Dataview

Obsidian 插件,可以对页面的 YAML frontmatter 运行查询,生成动态表格和列表。

---
type: entity
category: company
status: active
founded: 2020
---
TABLE founded, status
FROM "wiki/entities"
WHERE type = "company"
SORT founded DESC

qmd

一个本地 Markdown 文件搜索引擎,支持 BM25/向量混合搜索和 LLM 重排序,全部在本地设备上运行。同时有 CLI(LLM 可以通过 shell 调用)和 MCP 服务器(LLM 可以把搜索引擎作为原生工具调用)。

在小规模下索引文件就够用了,但随着 wiki 增长到数百个页面,你需要正式的搜索能力。

Git

Wiki 就是一个由 Markdown 文件组成的 git 仓库。你免费获得版本历史、分支和协作能力。


六、社区实现

Karpathy 的原始文档是一份抽象的设计文档,设计初衷是让你复制粘贴到自己的 LLM Agent 中。社区在此基础上做了大量具体实现。

llm_wiki(nashsu/llm_wiki)

一个跨平台桌面应用,基于 Karpathy 的方法论,做了大量增强。技术栈:Tauri v2(Rust 后端)+ React 19 + TypeScript。

核心增强

增强说明
两步思维链摄入LLM 先分析再生成 wiki 页面,质量显著提升
多模态图片摄入自动提取 PDF 内嵌图片,调用视觉模型生成描述
四信号知识图谱直接链接、来源重叠、Adamic-Adar、类型亲和
Louvain 社区检测自动发现知识聚类,内聚度评分
图谱洞察惊奇连接与知识空白检测,一键触发 Deep Research
向量语义搜索可选的 embedding 检索,基于 LanceDB
持久化摄入队列串行处理,崩溃恢复,取消/重试
Chrome 网页剪藏一键捕获网页内容,自动摄入
审核系统LLM 标记需人工判断的项,异步处理
深度研究LLM 生成搜索主题,多查询网络搜索,结果自动摄入

两步摄入流程

第一步(分析):LLM 阅读资料 → 结构化分析
- 关键实体、概念、论点
- 与现有 Wiki 内容的关联
- 与现有知识的矛盾和张力

第二步(生成):LLM 基于分析 → 生成 Wiki 文件
- 带 frontmatter 的资料摘要
- 实体页面、概念页面及交叉引用
- 更新 index.md、log.md、overview.md
- 需要人工判断的审核项

四信号关联度模型

信号权重描述
直接链接×3.0通过 [[wikilinks]] 链接的页面
来源重叠×4.0共享同一原始资料的页面
Adamic-Adar×1.5共享共同邻居的页面(按邻居度数加权)
类型亲和×1.0相同页面类型的加分

查询检索管线

阶段 1:分词搜索(英文分词 + 中文 CJK 二元组)

阶段 1.5:向量语义搜索(可选,LanceDB)

阶段 2:图谱扩展(四信号关联度,2 跳遍历)

阶段 3:预算控制(可配置 4K → 1M tokens)

阶段 4:上下文组装(编号页面 + purpose.md + index.md)

llm-wiki-compiler(atomicmemory/llm-wiki-compiler)

本地 CLI 工具,1K+ stars。特点:

  • 不可变资料源 + 生成的 Markdown
  • 来源可追溯:claim-level provenance,如 ^[paper.md:42-58]
  • 类型化 schema 和页面类型
  • 置信度和矛盾元数据
  • 图片/PDF/转录文件摄入
  • 分块检索 + BM25 重排序
  • MCP 工具支持

其他社区项目

  • SeekLink(simonsysun/seeklink):本地 .md 仓库的语义搜索,行锚定检索
  • Keel(Keel-Labs/keel):Mac 应用,知识以纯 Markdown 存储,模型可替换
  • SwarmVault(swarmclawai/swarmvault):持久化多轮对话,Neo4j 导出,MCP 集成
  • Eshel(alirezabbasi/eshel):将 LLM Wiki 概念扩展到软件系统的持久化工程智能
  • ΩmegaWiki(skyllwt/OmegaWiki):23 个 Claude Code skills,9 种实体类型,双语支持
  • Link(gowtham0992/link):本地优先 Markdown wiki + MCP 服务器,SQLite FTS 搜索

七、为什么这个模式有效

知识复利

RAG 的知识是「一次性」的——每次查询从头开始,没有任何积累。LLM Wiki 的知识是「复利」的——交叉引用越建越多,综合判断越来越丰富,新资料能立即与已有知识产生关联。

打个比方:RAG 像每次做饭都从零开始买菜,LLM Wiki 像一个不断扩充的食谱本,每次加新菜谱都会更新食材索引和搭配建议。

维护成本归零

维护知识库中令人厌烦的部分从来都不在阅读或思考,全在记账上——更新交叉引用、保持摘要时效性、标注新数据与旧结论的矛盾、在数十个页面间保持一致性。

人类之所以放弃 wiki,是因为维护负担的增长速度超过了价值的增长速度。LLM 不会厌倦、不会忘记更新某个交叉引用、而且能在一次操作中触及 15 个文件。Wiki 能保持被维护的状态,是因为维护成本接近于零。

从 Memex 到 LLM Wiki

这个理念的精神源头可以追溯到万尼瓦尔·布什(Vannevar Bush)1945 年提出的 Memex——一个私人的、精心策划的知识存储,文档之间有关联路径。布什在《As We May Think》一文中描述了一个「个人所有书籍、记录和通讯的机械化存储设备」,核心是关联索引——信息应该按关联组织,而不是按僵硬的分类。

相比后来万维网实际走向的方向,布什的愿景其实更接近 Karpathy 描述的这个模式:私密的、主动策划的,文档之间的连接与文档本身一样有价值。他没解决的问题是:谁来做维护?LLM 解决了。


八、与传统 RAG 的对比

维度传统 RAGLLM Wiki
知识存储原始文档,未加工编译后的结构化 wiki 页面
查询方式每次从原始文档中检索从已编译的 wiki 中检索
知识积累无,每次从零开始持续复利增长
交叉引用LLM 自动建立和维护
矛盾处理LLM 自动标注
维护成本低(不需要维护)低(LLM 维护)
适用场景一次性问答、临时查阅长期研究、持续积累
基础设施需要向量数据库、Embedding纯 Markdown 文件 + 索引

两者不是替代关系,而是互补的。如果你只是偶尔查个文档,RAG 够用了。如果你要在一个领域持续深耕几个月,LLM Wiki 的复利效应才真正体现。


九、实践建议

起步

  1. 把 Karpathy 的原始文档(Gist 链接)丢给你的 LLM Agent(Claude Code、OpenAI Codex 等)
  2. 和 LLM 一起定义你的 Schema:wiki 的目录结构、页面类型、命名约定
  3. 从一个你熟悉的领域开始,摄入 3-5 篇资料
  4. 用 Obsidian 打开 wiki 目录,浏览图谱视图

保持纪律

  • 逐条摄入,不要一次灌太多——每篇资料都值得被充分消化
  • 好的答案归档回 wiki——不要让有价值的分析消失在聊天历史中
  • 定期 Lint——每周花 10 分钟让 LLM 做健康检查
  • 维护 Schema——随着理解加深,持续迭代你的规则文档

规模参考

  • 10 个资料源、50 个页面:索引文件就够了,不需要搜索引擎
  • 100 个资料源、数百个页面:索引仍然有效,考虑加 qmd 等搜索工具
  • 1000+ 资料源:需要向量搜索和更完善的检索管线

十、Karpathy 原文留言精选

Karpathy 的 Gist 收获了 660+ 条留言,社区讨论非常活跃。摘选几条有价值的:

关于工具选择:多位开发者分享了自己的实现。有人做了 CLI 工具(llm-wiki-compiler),有人做了桌面应用(llm_wiki、Keel),有人做了 MCP 服务器(Link)。工具形态各异,但核心理念一致。

关于「wiki」这个词的争论:有人认为这些工具不应该叫「wiki」,因为缺乏协作编辑功能。反驳者认为语言会演化,核心在于信息的链接和可导航性,而非是否支持多人编辑。

关于来源可追溯:llm-wiki-compiler 实现了 claim-level provenance,每个声明可以追溯到原始资料的具体行号(如 ^[paper.md:42-58])。这比简单的页面级引用更精细。

关于知识图谱:llm_wiki 项目实现了四信号关联度模型和 Louvain 社区检测,把 wiki 从「一堆互相链接的文件」升级为「可分析的知识网络」。图谱洞察功能可以自动发现惊奇连接和知识空白。


十一、总结

LLM Wiki 解决的核心问题是:用大模型处理过的知识,为什么留不下来?

传统 RAG 让 LLM 每次临时翻书,什么都没沉淀。LLM Wiki 让 LLM 替你维护一套持续更新的笔记——知识被编译一次就沉淀下来,越积越厚。人类负责筛选和思考,LLM 负责所有记账工作。

这个模式的精神源头是 1945 年 Vannevar Bush 的 Memex 构想——一个私人的、精心策划的知识存储,文档之间的连接与文档本身一样有价值。Bush 没解决的问题是「谁来做维护」,LLM 解决了。